package cn.gzzhome.utils

/**
 * 一些常用的参数构建方法
 */
class CommandBuilder {
    /**
     * 取第一个值
     * @param prefix
     */
    def oneValue(prefix, quote = "'") {
        return { values ? "${prefix} ${quote}${values[0]}${quote}" : "" }
    }
    /**
     * 取所有值
     * @param prefix
     * @param quote
     * @return
     */
    def allValue(def prefix, quote = "'") {
        return {
            def result = ""
            values.each {
                result += " ${prefix} ${quote}${it}${quote}"
            }
            return result
        }
    }

    /**
     * 如果真，就返回参数，此方法主要用于一些true/false参数
     * @param cmd
     * @return
     */
    def ifTrue(def cmd, def defaultValue = false) {
        return {
            def result = ""
            if ((values && values[0]) || defaultValue) {
                result = cmd
            }
            return result
        }
    }

    /**
     * 不做拼接，直接返回空字符串
     * @return
     */
    def empty() {
        return { return "" }
    }
}
